simsim
Заглянувший
Joined: 04 Aug 2007
Posts: 10
Карма: 0 поощрить/наказать
|
Posted: Wed Sep 26, 2007 11:33 pm (написано за 6 минут 48 секунд)
Post subject: кеширование больших объемов или include файла
|
|
Столкнулся с интересной темой может профи будут смеяться делаем форум, значится у объекта тема есть владелец в базе данных грубо говоря id | themename | vladaelec_id 1 проверка 3 в таблице пользователей сайта id | name | 3 Вася т.о 2е таблицы связаны через владельца все просто допустим делаем вывод 50 тем последних на странице выводим табличку название темы и автор например проверка / Вася проверка 2 / Петя как нам получить имя владельца темы? делать вложенный запрос имени? при выводе каждой строчки? почему-то мне кажется это не очень оптимально получается чтобы сгенерить страничку из 50 тем нужно использовать 51 запрос к базе... не загрузит ли это сервер если 100 человек одновременно заползают по форуму? как можно оптимизировать получение таких вот связанных данных?
|
|
jonjonson
Участник форума
Banned

Joined: 16 Sep 2004
Posts: 88
Карма: 1 поощрить/наказать
|
Posted: Thu Sep 27, 2007 1:30 am (спустя 1 час 56 минут; написано за 4 минуты 3 секунды)
Post subject:
|
|
Так? Code (SQL): | скопировать код в буфер обмена | SELECT themes.id AS theme_id, themes.themename AS theme_name, users.name AS user_name FROM themes LEFT JOIN users ON vladaelec_id = users.id ORDER BY themes.id DESC LIMIT 0, 50 |
|
|
simsim
Заглянувший
Joined: 04 Aug 2007
Posts: 10
Карма: 0 поощрить/наказать
|
Posted: Thu Sep 27, 2007 10:41 am (спустя 9 часов 11 минут; написано за 3 минуты 56 секунд)
Post subject:
|
|
ну в принципе клевое решение спасибки а как поступить если допустим в каком-то поле хранится информация через # допустим 2#4#5#65 делаем сначала explode потом полученный массив циферок надо запросить из базы допустим это список проголосовавших за данный вариант вопроса где id это все тот же id users делать 1000 запросов? если проголосовавших 1000? или сделать select where id in(2,4,5)
|
|
jonjonson
Участник форума
Banned

Joined: 16 Sep 2004
Posts: 88
Карма: 1 поощрить/наказать
|
Posted: Thu Sep 27, 2007 10:50 am (спустя 9 минут; написано за 2 минуты 7 секунд)
Post subject:
|
|
Если информация хранится так 2#4#5#65, то что-то не так в "датском королевстве". В таком случае делается рефакторинг БД к правильному простому виду. Ну и оставшаяся часть вопроса мне не понятна, так как я не знаком с устройством структуры хранения данных в БД. :)
|
|
simsim
Заглянувший
Joined: 04 Aug 2007
Posts: 10
Карма: 0 поощрить/наказать
|
Posted: Thu Sep 27, 2007 1:37 pm (спустя 2 часа 46 минут; написано за 1 минуту 17 секунд)
Post subject:
|
|
ну а как еще хранить информацию о проголосовавших допустим? или какую-то информацию которую не хочется хранить в базе, и доставать лишним запросом так один запрос и получили нужные данные
|
|
Maus
Модератор

Joined: 29 Jun 2003
Posts: 8151
Карма: 271 поощрить/наказать
Location: пос. Омсукчан Магаданской области
|
Posted: Thu Sep 27, 2007 8:42 pm (спустя 7 часов 5 минут; написано за 2 минуты 18 секунд)
Post subject:
|
|
simsim
По-другому тоже будет 1 запрос. Только он вернет не 1 строку, а, скажем, 5. "Оптимизации" вроде Вашей возникают от слабого знания теории. Читайте про нормальные формы, в общем.
|
|